package com.ym.medical.domain.entity;

import com.ym.common.constant.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.persistence.Table;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

/**
 * 症状部位表对象 symptom_part
 *
 * @author ym
 * @date 2020-08-24
 */
@ApiModel("症状部位表-实体")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Table(name = "symptom_part")
public class SymptomPartEntity extends BaseEntity {

	private static final long serialVersionUID = 1L;

	@ApiModelProperty("症状标识")
	@NotNull(message="症状标识不能为空!",groups = {Update.class})
	private Long id;

	@ApiModelProperty("症状名称")
	@Size(max = 128 , message = "症状名称长度必须在{min}和{max}之间",groups = {Add.class,Update.class})
	private String symptomName;

	@ApiModelProperty("症状描述")
	@Size(max = 10000 , message = "症状描述长度必须在{min}和{max}之间",groups = {Add.class,Update.class})
	private String symptomDesc;

	@ApiModelProperty("相关疾病")
	@Size(max = 500 , message = "相关疾病长度必须在{min}和{max}之间",groups = {Add.class,Update.class})
	private String relSymptom;

	@ApiModelProperty("部位名称")
	@Size(max = 32 , message = "部位名称长度必须在{min}和{max}之间",groups = {Add.class,Update.class})
	private String partName;

	@ApiModelProperty("子部位名称")
	@Size(max = 32 , message = "子部位名称长度必须在{min}和{max}之间",groups = {Add.class,Update.class})
	private String subPartName;

	@ApiModelProperty("科室名称")
	@Size(max = 32 , message = "科室名称长度必须在{min}和{max}之间",groups = {Add.class,Update.class})
	private String deptName;

	@ApiModelProperty("科室编码")
	@Size(max = 6 , message = "科室编码长度必须在{min}和{max}之间",groups = {Add.class,Update.class})
	private String subDeptCode;

	@ApiModelProperty("状态")
	@Size(max = 2 , message = "状态长度必须在{min}和{max}之间",groups = {Add.class,Update.class})
	private String state;

	@ApiModelProperty("状态")
	private String stateName;

	@ApiModelProperty("症因")
	private String cause;

	@ApiModelProperty("诊断详述")
	private String diagnosticDetails;

	@ApiModelProperty("就诊指南")
	private String guide;

	@ApiModelProperty("部位id")
	private Long partId;

	@ApiModelProperty("子部位id")
	private Long subPartId;

	public interface Add {

	}

	public interface Update {

	}
}
